from DrissionPage import ChromiumPage,ChromiumOptions
from .util.Util import *

class FlyLu():
    def __init__(self) -> None:
        pass
    def add_article(self,url,proxyHost,proxyPort,proxyUser,proxyPass,pluginPath,username,password,path,startPar,endPar,select_flag):
        # 指定插件路径
        proxy_auth_plugin_path = Util.create_proxy_auth_extension(
            plugin_path=pluginPath,
            proxy_host=proxyHost,
            proxy_port=proxyPort,
            proxy_username=proxyUser,
            proxy_password=proxyPass
        )
        # 浏览器启动选项
        co = ChromiumOptions().add_extension(path=proxy_auth_plugin_path)
        # co = ChromiumOptions()
        # co.set_argument('--headless=new')  # 如果在无界面环境运行，添加这个参数
        # co.set_argument('--no-sandbox')  # Linux系统可能需要这个参数
        # co.set_user_agent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36')
        co.auto_port(True).save()
        
        # 创建页面对象，并启动或接管浏览器
        page = ChromiumPage(co)
        # 出现的弹窗都是确认
        page.set.auto_handle_alert(all_tabs=True)

        util = Util(page)
        # 登录，每次重新进入都会执行
        util.login(url,username,password)
        # 发布文章
        util.releses(select_flag,path,startPar,endPar)
        # 退出
        util.quit()

